<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      <h2>手机淘宝</h2>
      <tb-header></tb-header>
      <tb-content></tb-content>
      <tb-footer></tb-footer>
    </div>

    <script src="./lib/vue3.js"></script>
    <script>
      // app实例就是root组件(根组件)
      const app = Vue.createApp({
        data() {
          return {};
        },
      });

      // 组件就是一个具有单独功能的一个html,css,js的聚合体

      // 全局创建组件
      // 有两个参数，第一个参数是组件的名称，第二个参数是一个选项对象
      // 选项对象里面可以写任意的选项,但是必须要有一个template选项

      // 组件的取名
      // 顾名思义
      // 不能使用h5已有的或者未来可能有的标签, 建议加至少一个连字符
      // 取名的时候可以使用连字符或者大驼峰，在使用的时候只能使用连字符
      app.component("TbHeader", {
        data() {
          return {
            count: 1,
          };
        },
        template: `
          <header>这是淘宝的头部 - {{ count }}</header>
        `,
      });

      app.component("tb-content", {
        template: `
          <main>这是淘宝的内容</main>
        `,
      });

      app.component("tb-footer", {
        template: `
          <footer>这是淘宝的底部</footer>
        `,
      });

      app.mount("#app");
    </script>
  </body>
</html>
